home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / game / board / Chaos_src.lha / chaos / src / Chaos_Cat.c < prev    next >
C/C++ Source or Header  |  1995-05-10  |  17KB  |  505 lines

  1. /****************************************************************
  2.    This file was created automatically by `FlexCat 1.5'
  3.    from "Chaos.cd".
  4.  
  5.    Do NOT edit by hand!
  6. ****************************************************************/
  7.  
  8. /****************************************************************
  9.     This file uses the auto initialization possibilities of
  10.     Dice, gcc and SAS/C, respectively.
  11.  
  12.     Dice does this by using the keywords __autoinit and
  13.     __autoexit, SAS uses names beginning with _STI or
  14.     _STD, respectively. gcc uses the asm() instruction,
  15.     to emulate C++ constructors and destructors.
  16.  
  17.     Using this file you don't have *all* possibilities of
  18.     the locale.library. (No Locale or Language arguments are
  19.     supported when opening the catalog. However, these are
  20.     *very* rarely used, so this should be sufficient for most
  21.     applications.
  22. ****************************************************************/
  23.  
  24.  
  25. /*
  26.     Include files and compiler specific stuff
  27. */
  28. #include <exec/memory.h>
  29. #include <libraries/locale.h>
  30. #include <libraries/iffparse.h>
  31.  
  32. #if !defined(_DCC)
  33. #define __autoinit
  34. #define __autoexit
  35. #if !defined(__SASC)  &&  !defined(__GNUC__)
  36. #define _STIOpenChaosCatalog OpenChaosCatalog
  37. #define _STDCloseChaosCatalog CloseChaosCatalog
  38. #endif
  39. #endif
  40.  
  41. #include <proto/exec.h>
  42. #include <proto/dos.h>
  43. #include <proto/locale.h>
  44. #include <proto/utility.h>
  45. #include <proto/iffparse.h>
  46.  
  47. #include <stdlib.h>
  48. #include <string.h>
  49.  
  50.  
  51.  
  52. #include "Chaos_Cat.h"
  53.  
  54.  
  55. /*
  56.     Variables
  57. */
  58. struct FC_String Chaos_Strings[229] = {
  59.     { (STRPTR) "Tournamentfile-selection", 0 },
  60.     { (STRPTR) "Cannot open %s as write-file!\nDOS-Error %ld", 1 },
  61.     { (STRPTR) "DOS-Error %ld while writing %s!", 2 },
  62.     { (STRPTR) "Cannot open %s as read-file!\nDOS-Error %ld", 3 },
  63.     { (STRPTR) "%s is no Chaos-V5-file!", 4 },
  64.     { (STRPTR) "DOS-Error %ld while reading %s!", 5 },
  65.     { (STRPTR) "Attention!", 6 },
  66.     { (STRPTR) "Changes have been made!\nDo you want to save the tournament first?", 7 },
  67.     { (STRPTR) "Yes|No", 8 },
  68.     { (STRPTR) "Cannot open Tournament-input-window!", 9 },
  69.     { (STRPTR) "No pairings possible!\nToo much rounds?", 10 },
  70.     { (STRPTR) "Cannot connect to printer!", 11 },
  71.     { (STRPTR) "Page", 12 },
  72.     { (STRPTR) "Name", 13 },
  73.     { (STRPTR) "Rating", 14 },
  74.     { (STRPTR) "Chess-club", 15 },
  75.     { (STRPTR) "Home", 16 },
  76.     { (STRPTR) "Address", 17 },
  77.     { (STRPTR) "Birthday", 18 },
  78.     { (STRPTR) "Phone", 19 },
  79.     { (STRPTR) "List of players", 20 },
  80.     { (STRPTR) "Result", 21 },
  81.     { (STRPTR) "White", 22 },
  82.     { (STRPTR) "Black", 23 },
  83.     { (STRPTR) "Games of round %ld", 24 },
  84.     { (STRPTR) "Place", 25 },
  85.     { (STRPTR) "Points", 26 },
  86.     { (STRPTR) "Buchholz", 27 },
  87.     { (STRPTR) "Ext.Bchh.", 28 },
  88.     { (STRPTR) "SnnBrgr.", 29 },
  89.     { (STRPTR) "Table of round %ld %s", 30 },
  90.     { (STRPTR) "Table %s", 31 },
  91.     { (STRPTR) "Ratings", 32 },
  92.     { (STRPTR) "Nr.", 33 },
  93.     { (STRPTR) "List of rankings (round %ld)", 34 },
  94.     { (STRPTR) "Table of progress until round %ld", 35 },
  95.     { (STRPTR) "Opponent (Nr., Result, Color)", 36 },
  96.     { (STRPTR) "    free", 37 },
  97.     { (STRPTR) " dropped", 38 },
  98.     { (STRPTR) "1 p. bye", 39 },
  99.     { (STRPTR) "free", 40 },
  100.     { (STRPTR) "(np)", 41 },
  101.     { (STRPTR) "Input of games (round %ld)", 42 },
  102.     { (STRPTR) "Games have already been paired!\nDo you really want to add new players?", 43 },
  103.     { (STRPTR) "Games have already been paired!\nDo you really want to modify players?", 44 },
  104.     { (STRPTR) "Games have already been paired!\nDo you really want to delete players?\n"\
  105.     "(Mark them as withdrawn.)", 45 },
  106.     { (STRPTR) "Do you really want to delete\nthe player %s?", 46 },
  107.     { (STRPTR) "Do you really want to mark\n%s as withdrawn?", 47 },
  108.     { (STRPTR) "Don't care!", 48 },
  109.     { (STRPTR) "Player %s\nhas already been marked as withdrawn!", 49 },
  110.     { (STRPTR) "Ok", 50 },
  111.     { (STRPTR) "o", 51 },
  112.     { (STRPTR) "Error!", 52 },
  113.     { (STRPTR) "Out of memory!", 53 },
  114.     { (STRPTR) "Swiss pairing", 54 },
  115.     { (STRPTR) "Round Robin (FIDE-system)", 55 },
  116.     { (STRPTR) "Round Robin (shift-system)", 56 },
  117.     { (STRPTR) "Input of tournament-data", 57 },
  118.     { (STRPTR) "Input of new players", 58 },
  119.     { (STRPTR) "\033uW\033nhite wins", 59 },
  120.     { (STRPTR) "\033uD\033nraw", 60 },
  121.     { (STRPTR) "\033uB\033nlack wins", 61 },
  122.     { (STRPTR) "Result \033u\033nmissing", 62 },
  123.     { (STRPTR) "\033uP\033nlayed", 63 },
  124.     { (STRPTR) "\033uN\033not played", 64 },
  125.     { (STRPTR) "Project", 65 },
  126.     { (STRPTR) "New", 66 },
  127.     { (STRPTR) "Load", 67 },
  128.     { (STRPTR) "Save", 68 },
  129.     { (STRPTR) "Save as", 69 },
  130.     { (STRPTR) "About", 70 },
  131.     { (STRPTR) "Quit", 71 },
  132.     { (STRPTR) "Players", 72 },
  133.     { (STRPTR) "Add", 73 },
  134.     { (STRPTR) "Import", 74 },
  135.     { (STRPTR) "Modify", 75 },
  136.     { (STRPTR) "Delete", 76 },
  137.     { (STRPTR) "Round", 77 },
  138.     { (STRPTR) "Make pairings", 78 },
  139.     { (STRPTR) "Swiss pairing", 79 },
  140.     { (STRPTR) "Round Robin (FIDE-system)", 80 },
  141.     { (STRPTR) "Round Robin (shift-system)", 81 },
  142.     { (STRPTR) "Enter results", 82 },
  143.     { (STRPTR) "Output", 83 },
  144.     { (STRPTR) "Player-list", 84 },
  145.     { (STRPTR) "short", 85 },
  146.     { (STRPTR) "long", 86 },
  147.     { (STRPTR) "Rankings", 87 },
  148.     { (STRPTR) "Round", 88 },
  149.     { (STRPTR) "Table", 89 },
  150.     { (STRPTR) "All", 90 },
  151.     { (STRPTR) "Seniors", 91 },
  152.     { (STRPTR) "Juniors", 92 },
  153.     { (STRPTR) "Women", 93 },
  154.     { (STRPTR) "Juniors (A)", 94 },
  155.     { (STRPTR) "Juniors (B)", 95 },
  156.     { (STRPTR) "Juniors (C)", 96 },
  157.     { (STRPTR) "Juniors (D)", 97 },
  158.     { (STRPTR) "Juniors (E)", 98 },
  159.     { (STRPTR) "Table of progress", 99 },
  160.     { (STRPTR) "DWZ-report", 100 },
  161.     { (STRPTR) "Cross-table", 101 },
  162.     { (STRPTR) "Ascii", 102 },
  163.     { (STRPTR) "TeX", 103 },
  164.     { (STRPTR) "Player-cards", 104 },
  165.     { (STRPTR) "Ascii", 105 },
  166.     { (STRPTR) "TeX", 106 },
  167.     { (STRPTR) "Preferences", 107 },
  168.     { (STRPTR) "scoring", 108 },
  169.     { (STRPTR) "Simple", 109 },
  170.     { (STRPTR) "Buchholz", 110 },
  171.     { (STRPTR) "Buchholz (extended)", 111 },
  172.     { (STRPTR) "Sonneborn-Berger", 112 },
  173.     { (STRPTR) "Output-Device", 113 },
  174.     { (STRPTR) "Screen", 114 },
  175.     { (STRPTR) "Printer (Draft)", 115 },
  176.     { (STRPTR) "Printer (LQ)", 116 },
  177.     { (STRPTR) "File", 117 },
  178.     { (STRPTR) "Set Games", 118 },
  179.     { (STRPTR) "Make icons", 119 },
  180.     { (STRPTR) "Save window settings", 120 },
  181.     { (STRPTR) "Special", 121 },
  182.     { (STRPTR) "Players:", 122 },
  183.     { (STRPTR) "Rounds:", 123 },
  184.     { (STRPTR) "Tournamentname:", 124 },
  185.     { (STRPTR) "Tournamentfile:", 125 },
  186.     { (STRPTR) "Tournamentmode:", 126 },
  187.     { (STRPTR) "Cancel", 127 },
  188.     { (STRPTR) "c", 128 },
  189.     { (STRPTR) "Ok", 129 },
  190.     { (STRPTR) "Tournamentname", 130 },
  191.     { (STRPTR) "Name", 131 },
  192.     { (STRPTR) "Home", 132 },
  193.     { (STRPTR) "Address", 133 },
  194.     { (STRPTR) "Chess-club", 134 },
  195.     { (STRPTR) "Phone", 135 },
  196.     { (STRPTR) "Birthday", 136 },
  197.     { (STRPTR) "Rating", 137 },
  198.     { (STRPTR) "ELO", 138 },
  199.     { (STRPTR) "Senior", 139 },
  200.     { (STRPTR) "Junior", 140 },
  201.     { (STRPTR) "Woman", 141 },
  202.     { (STRPTR) "Junior (A)", 142 },
  203.     { (STRPTR) "Junior (B)", 143 },
  204.     { (STRPTR) "Junior (C)", 144 },
  205.     { (STRPTR) "Junior (D)", 145 },
  206.     { (STRPTR) "Junior (E)", 146 },
  207.     { (STRPTR) "Players name is missing!", 147 },
  208.     { (STRPTR) "Error in birthday of player %s!", 148 },
  209.     { (STRPTR) "This program is governed by the terms and conditions of the GNU General "\
  210.     "Public License. A copy should have come with this distribution. (See the "\
  211.     "file COPYING.) In that license it is made clear that you are welcome to "\
  212.     "redistribute either verbatim or modified copies of the program and the "\
  213.     "documentation under certain conditions. Further you are told that this "\
  214.     "program comes with ABSOLUTELY NO WARRANTY!\n\n\n", 149 },
  215.     { (STRPTR) "My thanks go to\n"\
  216.     "\n"\
  217.     "    Stefan Stuntz for MUI. Finally the user interface should be satisfying "\
  218.     "for everyone.\n"\
  219.     "\n"\
  220.     "    Reinhard Spisser and Sebastiano Vigna for the Amiga-version of texinfo. "\
  221.     "The documentation is written using this.\n"\
  222.     "\n"\
  223.     "    The Free Software Foundation for creating texinfo and many other "\
  224.     "excellent programs.\n\n", 150 },
  225.     { (STRPTR) "    The Betatesters: Kai Bolay, Frank Geider, Franz Hemmer, Jürgen Lang "\
  226.     "(Quarvon), Christian Soltenborn and Volker Zink (The_Zinker)\n"\
  227.     "\n"\
  228.     "    My friend Mathias Moersch for his help in the manual's english "\
  229.     "translation: Spending nearly 6 years in the USA finally does some good!\n"\
  230.     "\n"\
  231.     "    The people of #AmigaGer for answering many stupid questions and lots of "\
  232.     "fun, for example PowerStat (Kai Hoffmann), ZZA (Bernhard Möllemann), "\
  233.     "Stargazer (Petra Zeidler), stefanb (Stefan Becker), Tron (Mathias "\
  234.     "Scheler) and ill (Markus Illenseer)\n"\
  235.     "\n"\
  236.     "    Commodore for the Amiga and Kickstart V2.x. Keep on developing and I'll "\
  237.     "be an Amiga-user the next 8 years too. :-)\n"\
  238.     "\n"\
  239.     "    Douglas Adams and Tom Sharpe for creating Arthur Dent and Tom Sharpe. "\
  240.     "My favourite (anti)-heroes!\n"\
  241.     "\n"\
  242.     "    and to my parents for their bath-tub: There's no better place to think "\
  243.     "about something ;-)", 151 },
  244.     { (STRPTR) "Player %s doesn't have a birthdate!\n"\
  245.     "Please select an age-group or make another decision:", 152 },
  246.     { (STRPTR) "20 or younger|21-25|26 or older|Modify|Skip|Cancel", 153 },
  247.     { (STRPTR) "DWZ-Ratings", 154 },
  248.     { (STRPTR) "Informations", 155 },
  249.     { (STRPTR) "ELO", 156 },
  250.     { (STRPTR) "S", 157 },
  251.     { (STRPTR) "J", 158 },
  252.     { (STRPTR) "W", 159 },
  253.     { (STRPTR) "A", 160 },
  254.     { (STRPTR) "B", 161 },
  255.     { (STRPTR) "C", 162 },
  256.     { (STRPTR) "D", 163 },
  257.     { (STRPTR) "E", 164 },
  258.     { (STRPTR) "(dd.mm.yyyy)", 165 },
  259.     { (STRPTR) "L", 166 },
  260.     { (STRPTR) "S", 167 },
  261.     { (STRPTR) "A", 168 },
  262.     { (STRPTR) "I", 169 },
  263.     { (STRPTR) "N", 170 },
  264.     { (STRPTR) "M", 171 },
  265.     { (STRPTR) "Select a player to modify", 172 },
  266.     { (STRPTR) "TeX-file-selection", 173 },
  267.     { (STRPTR) "Games have already been paired.\nNo new players possible!", 174 },
  268.     { (STRPTR) "It isn't possible to enter new players,\nwhen round 1 is finished!", 175 },
  269.     { (STRPTR) "Player modification", 176 },
  270.     { (STRPTR) "Select a player to delete", 177 },
  271.     { (STRPTR) "No players may be deleted\n in a round robin tournament!", 178 },
  272.     { (STRPTR) "Yes|No|Cancel", 179 },
  273.     { (STRPTR) "Setting of games", 180 },
  274.     { (STRPTR) "Delete", 181 },
  275.     { (STRPTR) "d", 182 },
  276.     { (STRPTR) "F", 183 },
  277.     { (STRPTR) "Output file selection", 184 },
  278.     { (STRPTR) "Round selection", 185 },
  279.     { (STRPTR) "Please select a round number", 186 },
  280.     { (STRPTR) "Canot open window: %s", 187 },
  281.     { (STRPTR) "Ok", 188 },
  282.     { (STRPTR) "Out of memory", 189 },
  283.     { (STRPTR) "Out of chip memory", 190 },
  284.     { (STRPTR) "Invalid window object", 191 },
  285.     { (STRPTR) "Missing library", 192 },
  286.     { (STRPTR) "Cannot create ARexx port", 193 },
  287.     { (STRPTR) "Application is already running", 194 },
  288.     { (STRPTR) "Unknown error", 195 },
  289.     { (STRPTR) "Number of active players is even:\n"\
  290.     "No one point bye allowed.", 196 },
  291.     { (STRPTR) "Players %s\n"\
  292.     "and %s\n"\
  293.     "have already been paired in round %ld.", 197 },
  294.     { (STRPTR) "Players %s\n"\
  295.     "and %s\n"\
  296.     "had %s pieces in the last two rounds.\n\n"\
  297.     "Do you really want to pair them?", 198 },
  298.     { (STRPTR) "Player %s has withdrawn\n"\
  299.     "and cannot be set.", 199 },
  300.     { (STRPTR) "Player %s is already set as\n"\
  301.     "opponent of player %s.", 200 },
  302.     { (STRPTR) "Player %s already\n"\
  303.     "had an one point bye.", 201 },
  304.     { (STRPTR) "Modify", 202 },
  305.     { (STRPTR) "m", 203 },
  306.     { (STRPTR) "Result", 204 },
  307.     { (STRPTR) "Mode", 205 },
  308.     { (STRPTR) "Finish", 206 },
  309.     { (STRPTR) "f", 207 },
  310.     { (STRPTR) "Chaos selects colors", 208 },
  311.     { (STRPTR) "User determines colors", 209 },
  312.     { (STRPTR) "(cd)", 210 },
  313.     { (STRPTR) "Player %s already had\n"\
  314.     "the %s pieces in the last two rounds.\n"\
  315.     "Do you really want this?", 211 },
  316.     { (STRPTR) "w", 212 },
  317.     { (STRPTR) "d", 213 },
  318.     { (STRPTR) "b", 214 },
  319.     { (STRPTR) "m", 215 },
  320.     { (STRPTR) "p", 216 },
  321.     { (STRPTR) "n", 217 },
  322.     { (STRPTR) "A player %s already exists.", 218 },
  323.     { (STRPTR) "Delete him|Skip him|Cancel", 219 },
  324.     { (STRPTR) "Withdraw him|Skip him|Cancel", 220 },
  325.     { (STRPTR) "Please select players to import", 221 },
  326.     { (STRPTR) "Import", 222 },
  327.     { (STRPTR) "i", 223 },
  328.     { (STRPTR) "Reverse", 224 },
  329.     { (STRPTR) "r", 225 },
  330.     { (STRPTR) "Cancelling output:\nPrinter trouble.", 226 },
  331.     { (STRPTR) "Winner points:", 227 },
  332.     { (STRPTR) "Draw points:", 228 }
  333. };
  334.  
  335. STATIC struct Catalog *ChaosCatalog = NULL;
  336. #ifdef LOCALIZE_V20
  337. STATIC STRPTR ChaosStrings = NULL;
  338. STATIC ULONG ChaosStringsSize;
  339. #endif
  340.  
  341.  
  342.  
  343. #if defined(__GNUC__)  ||  defined(__SASC)  ||  defined(_DCC)
  344. STATIC __autoexit VOID _STDCloseChaosCatalog(VOID)
  345. #else
  346. VOID CloseChaosCatalog(VOID)
  347. #endif
  348.  
  349. {
  350.     if (ChaosCatalog) {
  351.     CloseCatalog(ChaosCatalog);
  352.     }
  353. #ifdef LOCALIZE_V20
  354.     if (ChaosStrings) {
  355.     FreeMem(ChaosStrings, ChaosStringsSize);
  356.     }
  357. #endif
  358. }
  359.  
  360.  
  361. #if defined(__GNUC__)  ||  defined(__SASC)  ||  defined(_DCC)
  362. STATIC __autoinit VOID _STIOpenChaosCatalog(VOID)
  363. #else
  364. VOID OpenChaosCatalog(VOID)
  365. #endif
  366.  
  367. {
  368.     if (LocaleBase) {
  369.     if ((ChaosCatalog = OpenCatalog(NULL, (STRPTR) "Chaos.catalog",
  370.                      OC_BuiltInLanguage, "english",
  371.                      OC_Version, 8,
  372.                      TAG_DONE))) {
  373.         struct FC_String *fc;
  374.         int i;
  375.  
  376.         for (i = 0, fc = Chaos_Strings;  i < 229;  i++, fc++) {
  377.          fc->msg = GetCatalogStr(ChaosCatalog, fc->id, fc->msg);
  378.         }
  379.     }
  380.     }
  381. }
  382.  
  383. #if defined(__GNUC__)
  384. __asm ("  .text;  .stabs \"___CTOR_LIST__\",22,0,0,__STIOpenChaosCatalog");
  385. __asm ("  .text;  .stabs \"___DTOR_LIST__\",22,0,0,__STDCloseChaosCatalog");
  386. #endif
  387.  
  388.  
  389.  
  390. #ifdef LOCALIZE_V20
  391. VOID InitChaosCatalog(STRPTR language)
  392.  
  393. {
  394.     struct IFFHandle *iffHandle;
  395.  
  396.     /*
  397.     **  Use iffparse.library only, if we need to.
  398.     */
  399.     if (LocaleBase  ||  !IFFParseBase  ||  !language  ||
  400.     Stricmp(language, "english") == 0) {
  401.     return;
  402.     }
  403.  
  404.     if ((iffHandle = AllocIFF())) {
  405.     char path[128]; /* Enough to hold 4 path items (dos.library 3.1)    */
  406.     strcpy(path, "PROGDIR:Catalogs");
  407.     AddPart((STRPTR) path, language, sizeof(path));
  408.     AddPart((STRPTR) path, "Chaos.catalog", sizeof(path));
  409.     if (!(iffHandle->iff_Stream = Open((STRPTR) path, MODE_OLDFILE))) {
  410.         strcpy(path, "LOCALE:Catalogs");
  411.         AddPart((STRPTR) path, language, sizeof(path));
  412.         AddPart((STRPTR) path, language, sizeof(path));
  413.         iffHandle->iff_Stream = Open((STRPTR) path, MODE_OLDFILE);
  414.     }
  415.  
  416.     if (iffHandle->iff_Stream) {
  417.         InitIFFasDOS(iffHandle);
  418.         if (!OpenIFF(iffHandle, IFFF_READ)) {
  419.         if (!PropChunk(iffHandle, MAKE_ID('C','T','L','G'),
  420.                    MAKE_ID('S','T','R','S'))) {
  421.             struct StoredProperty *sp;
  422.             int error;
  423.  
  424.             for (;;) {
  425.             if ((error = ParseIFF(iffHandle, IFFPARSE_STEP))
  426.                    ==  IFFERR_EOC) {
  427.                 continue;
  428.             }
  429.             if (error) {
  430.                 break;
  431.             }
  432.  
  433.             if ((sp = FindProp(iffHandle, MAKE_ID('C','T','L','G'),
  434.                        MAKE_ID('S','T','R','S')))) {
  435.                 /*
  436.                 **  Check catalog and calculate the needed
  437.                 **  number of bytes.
  438.                 **  A catalog string consists of
  439.                 **      ID (LONG)
  440.                 **      Size (LONG)
  441.                 **      Bytes (long word padded)
  442.                 */
  443.                 LONG bytesRemaining;
  444.                 LONG *ptr;
  445.  
  446.                 ChaosStringsSize = 0;
  447.                 bytesRemaining = sp->sp_Size;
  448.                 ptr = (LONG *) sp->sp_Data;
  449.  
  450.                 while (bytesRemaining > 0) {
  451.                 LONG skipSize, stringSize;
  452.  
  453.                 ptr++;                  /*  Skip ID     */
  454.                 stringSize = *ptr++;
  455.                 skipSize = ((stringSize+3) >> 2);
  456.  
  457.                 ChaosStringsSize += stringSize+1;  /*  NUL */
  458.                 bytesRemaining -= 8 + (skipSize << 2);
  459.                 ptr += skipSize;
  460.                 }
  461.  
  462.                 if (!bytesRemaining  &&
  463.                 (ChaosStrings = AllocMem(ChaosStringsSize, MEMF_ANY))) {
  464.                 STRPTR sptr;
  465.  
  466.                 bytesRemaining = sp->sp_Size;
  467.                 ptr = (LONG *) sp->sp_Data;
  468.                 sptr = ChaosStrings;
  469.  
  470.                 while (bytesRemaining) {
  471.                     LONG skipSize, stringSize, id;
  472.                     struct FC_String *fc;
  473.                     int i;
  474.  
  475.                     id = *ptr++;
  476.                     stringSize = *ptr++;
  477.                     skipSize = ((stringSize+3) >> 2);
  478.  
  479.                     CopyMem(ptr, sptr, stringSize);
  480.                     bytesRemaining -= 8 + (skipSize << 2);
  481.                     ptr += skipSize;
  482.  
  483.                     for (i = 0, fc = Chaos_Strings;  i < 229;  i++, fc++) {
  484.                     if (fc->id == id) {
  485.                         fc->msg = sptr;
  486.                     }
  487.                     }
  488.  
  489.                     sptr += stringSize;
  490.                     *sptr++ = '\0';
  491.                 }
  492.                 }
  493.                 break;
  494.             }
  495.             }
  496.         }
  497.         CloseIFF(iffHandle);
  498.         }
  499.         Close(iffHandle->iff_Stream);
  500.     }
  501.     FreeIFF(iffHandle);
  502.     }
  503. }
  504. #endif
  505.